package primaryAlgorithm.merge;
/**
 * @Date 2020/03/19
 * @author 王光浩
 * @Thinking 使用倒序方式+双指针
 * @Analysis 时间复杂度O（m+n），空间复杂度O（1）
 */
public class MyMethodTwo {
	 public void merge(int[] nums1, int m, int[] nums2, int n) {
		 int index1=m-1; //指向每个数组的最大数
		 int index2=n-1; 
		 int index=m+n-1; //下一个数字在第一个数组中存放的位置
		 while(index>=0 && index1>=0 && index2>=0) {
			 nums1[index--]=nums1[index1]>nums2[index2]?nums1[index1--]:nums2[index2--];
		 }
		 //当nums1中有序序列全部存放，但是nums2中仍然有序列没有存放的情况
		 for(int i=0;i<=index2;i++) 
			 nums1[i]=nums2[i];
	 }
}
